package com.aorise.mapper.bayonet;

import com.aorise.model.bayonet.*;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @Auther: zhouhao
 * @Date: 2019/6/19
 * @Description: 卡口mapper
 */
@Mapper
@Component
public interface BayonetMapper {

    /**
     * 添加卡口
     * @param bayonetModel 入参
     * @return
     */
    int addBayonet(BayonetModel bayonetModel);

    /**
     * 添加卡口车道
     * @param bayonetLanes 入参
     * @return
     */
    int addBayonetLane(List<BayonetLaneModel> bayonetLanes);

    /**
     * 卡口列表分页总数
     * @param map
     * @return
     */
    int selectBayonetCount(Map<String, Object> map);

    /**
     * 卡口列表分页
     * @param map
     * @return
     */
    List<?> selectBayonetList(Map<String, Object> map);


    /**
     * 条件查询卡口详情（可查询所有卡口，也可查询单个卡口）
     * @param map
     * @return
     */
    List<LinkedHashMap<String,String>> getBayonetByMap(Map<String, Object> map);

    /**
     * 卡口详情 包括 设备数据
     * @param map
     * @return
     */
    BayonetInfo getBayonetInfo(Map<String, Object> map);

    /**
     * 删除 某卡口的车道信息
     * @param map 条件
     * @return
     */
    int upBayonetLane(Map<String, Object> map);

    /**
     * 修改卡口信息
     * @param bayonet   条件
     * @return
     */
    int upBayonet(BayonetModel bayonet);

    /**
     * 获取卡口分组情况
     * @return
     */
    List<BayonetGroup> getBayonetGroup();

    /**
     * 通过分组获取一级分组下的卡口和二级分组下的卡口
     * @param map 入参条件
     * @return
     */
    List<BayonetVO> getBayonetByGroup(Map<String, Object> map);

    /**
     * 根据卡口编码查询卡口
     * @param map
     * @return
     */
    BayonetModel selectBayonetByBaNumber(Map map);

    /**
     * 通过分组名查找分组ID
     * @param map
     * @return
     */
    Integer selectGroupByGName(Map map);
}
